@echo off
title 物业保洁系统 - 安装测试
color 0A
echo.
echo ╔══════════════════════════════════════════════════════════════╗
echo ║              物业保洁系统安装测试工具                        ║
echo ║              错误检测与修复指南                              ║
echo ╚══════════════════════════════════════════════════════════════╝
echo.

REM 检查管理员权限
echo 检查管理员权限...
net session >nul 2>&1
if %errorLevel% neq 0 (
    echo ❌ 请以管理员身份运行此脚本
    echo 右键点击文件，选择"以管理员身份运行"
    pause
    exit /b 1
) else (
    echo ✅ 管理员权限已获取
)

echo.
echo 检查系统兼容性...
echo ================================================

REM 检查Windows版本
ver | findstr /i "10\." >nul
if %errorLevel% neq 0 (
    ver | findstr /i "11\." >nul
    if %errorLevel% neq 0 (
        echo ⚠️  非Windows 10/11系统，可能存在问题
    ) else (
        echo ✅ Windows 11 检测通过
    )
) else (
    echo ✅ Windows 10 检测通过
)

REM 检查系统架构
systeminfo | findstr /C:"x64" >nul
if %errorLevel% neq 0 (
    echo ⚠️  非64位系统，Docker可能不支持
) else (
    echo ✅ 64位系统检测通过
)

echo.
echo 检查必要软件...
echo ================================================

REM 检查Chocolatey
choco --version >nul 2>&1
if %errorLevel% neq 0 (
    echo ❌ Chocolatey未安装
    echo 解决方案: 运行 install-all-windows-fixed.bat
) else (
    echo ✅ Chocolatey已安装
)

REM 检查Git
git --version >nul 2>&1
if %errorLevel% neq 0 (
    echo ❌ Git未安装
    echo 解决方案: 运行 install-all-windows-fixed.bat 或手动安装
    echo 📥 https://git-scm.com/download/win
) else (
    echo ✅ Git已安装
    git --version
)

REM 检查Docker
docker --version >nul 2>&1
if %errorLevel% neq 0 (
    echo ❌ Docker未安装
    echo 解决方案: 运行 install-all-windows-fixed.bat 或手动安装
    echo 📥 https://www.docker.com/products/docker-desktop/
) else (
    echo ✅ Docker已安装
    docker --version
    
    REM 检查Docker服务
    docker info >nul 2>&1
    if %errorLevel% neq 0 (
        echo ⚠️  Docker已安装但服务未运行
        echo 解决方案: 启动Docker Desktop
    ) else (
        echo ✅ Docker服务运行正常
    )
)

REM 检查Java
java -version >nul 2>&1
if %errorLevel% neq 0 (
    echo ❌ Java未安装
    echo 解决方案: 运行 install-all-windows-fixed.bat 或手动安装
    echo 📥 https://adoptium.net/
) else (
    echo ✅ Java已安装
    java -version 2>&1 | findstr version
)

REM 检查Node.js
node --version >nul 2>&1
if %errorLevel% neq 0 (
    echo ❌ Node.js未安装
    echo 解决方案: 运行 install-all-windows-fixed.bat 或手动安装
    echo 📥 https://nodejs.org/
) else (
    echo ✅ Node.js已安装
    node --version
    npm --version
)

echo.
echo 检查系统资源...
echo ================================================

REM 检查内存
systeminfo | findstr /C:"Total Physical Memory" >nul
if %errorLevel% neq 0 (
    echo ⚠️  无法检测内存
) else (
    systeminfo | findstr /C:"Total Physical Memory"
)

REM 检查磁盘空间
for /f "tokens=3" %%a in ('dir C:\ /-c ^| findstr /c:"bytes free"') do (
    echo C盘可用空间: %%a
)

echo.
echo 检查端口...
echo ================================================

REM 检查端口
netstat -ano | findstr :3000 >nul
if %errorLevel% neq 0 (
    echo ✅ 端口3000 (前端) 可用
) else (
    echo ⚠️  端口3000 (前端) 被占用
    echo 解决方案: 终止占用进程或修改端口配置
)

netstat -ano | findstr :8080 >nul
if %errorLevel% neq 0 (
    echo ✅ 端口8080 (后端) 可用
) else (
    echo ⚠️  端口8080 (后端) 被占用
    echo 解决方案: 终止占用进程或修改端口配置
)

echo.
echo 检查项目文件...
echo ================================================

REM 检查项目文件
if exist "docker-compose.yml" (
    echo ✅ docker-compose.yml 存在
) else (
    echo ❌ docker-compose.yml 不存在
    echo 当前目录: %CD%
)

if exist "pom.xml" (
    echo ✅ pom.xml 存在 (后端项目)
) else (
    echo ⚠️  pom.xml 不存在
)

if exist "package.json" (
    echo ✅ package.json 存在 (前端项目)
) else (
    echo ⚠️  package.json 不存在
)

echo.
echo 检查网络连接...
echo ================================================

ping -n 1 google.com >nul 2>&1
if %errorLevel% neq 0 (
    echo ⚠️  网络连接可能有问题
    echo 解决方案: 检查网络设置
) else (
    echo ✅ 网络连接正常
)

echo.
echo ╔══════════════════════════════════════════════════════════════╗
echo ║                    测试结果汇总                              ║
echo ╚══════════════════════════════════════════════════════════════╝
echo.

REM 生成修复建议
echo 📋 修复建议：
echo.

set MISSING_COUNT=0

REM 检查缺失的软件
if not exist "%PROGRAMDATA%\chocolatey\bin\choco.exe" set /a MISSING_COUNT+=1
if not exist "C:\Program Files\Git\bin\git.exe" set /a MISSING_COUNT+=1
docker --version >nul 2>&1 || set /a MISSING_COUNT+=1
java -version >nul 2>&1 || set /a MISSING_COUNT+=1
node --version >nul 2>&1 || set /a MISSING_COUNT+=1

if %MISSING_COUNT% gtr 0 (
    echo 🔧 建议使用修正版安装脚本：
    echo   运行 install-all-windows-fixed.bat
    echo.
    echo 或手动安装：
    echo   1. Git: https://git-scm.com/download/win
    echo   2. Docker: https://www.docker.com/products/docker-desktop/
    echo   3. Java 17: https://adoptium.net/
    echo   4. Node.js: https://nodejs.org/
) else (
    echo ✅ 所有必要软件已安装！
    echo.
    echo 🚀 可以启动系统：
    echo   运行 quick-start-windows.bat
)

echo.
echo 📁 相关文件：
echo   install-all-windows-fixed.bat - 修正版安装脚本
echo   WINDOWS-INSTALL-TROUBLESHOOT.md - 故障排除指南
echo   quick-start-windows.bat - 快速启动脚本
echo.
echo 📞 技术支持：
echo   如仍有问题，请查看 WINDOWS-INSTALL-TROUBLESHOOT.md
pause